#include "apue.h"
#include <fcntl.h>

int main(int argc, char *argv[])
{
    int i, fd;
    struct stat statbuf;
    struct timespec times[2];

    for (i = 1; i < argc; i++)
    {
        if (stat(argv[i], &statbuf) < 0)
        {
            err_ret("%s: stat error", argv[i]);
            continue;
        }
        // truncate
        if ((fd = open(argv[i], O_RDWR|O_TRUNC)) < 0)
        {
            err_ret("%s: open error", argv[i]);
        }

        // 访问时间
        times[0] = statbuf.st_atim;
        // 修改时间
        times[1] = statbuf.st_mtim;
        // 重置访问时间和修改时间
        if (futimens(fd, times) < 0)
        {
            err_ret("%s: futimens error", argv[i]);
        }
        close(fd);
    }
    exit(0);
}
